/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.dew.proyecto.dao;


import pe.edu.upc.dew.proyecto.model.ServicioExamen;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import pe.edu.upc.dew.proyecto.bd.Conexion;



/**
 *
 * @author Fernando
 */
public class ServicioExamenDaoImpl implements ServicioExamenDao {
    private ExamenDao examenDao;
    private ImagenDao imagenDao;
    public ServicioExamen getServicioExamenPorCodigo(int codigoservicioexamen){

        ServicioExamen servicioExamen = null;

        Connection connection = null;
        Statement st = null;
        ResultSet rsServicioExamen = null;
        ResultSet rsImagen = null;


        try{
            connection= Conexion.obtenerConexion();
            st = connection.createStatement();

            rsServicioExamen = st.executeQuery(
                    "select * from servicio_examen where idservexamen ="
                    + Integer.toString(codigoservicioexamen));

            if (rsServicioExamen.next()){
                servicioExamen = new ServicioExamen() ;
                servicioExamen.setIdServExamen(codigoservicioexamen);
                servicioExamen.setFechaToma(rsServicioExamen.getDate("fechatoma"));
                servicioExamen.setResultado(rsServicioExamen.getString("resultado"));
                servicioExamen.setObjExamen(
                        examenDao.getExamenPorCodigo(rsServicioExamen.getInt("coexamen")));
                rsImagen = st.executeQuery(
                        "select * from imagen where idservexamen ="
                        + Integer.toString(codigoservicioexamen));
                while (rsImagen.next()){
                    servicioExamen.getListaImagenes().
                            add(imagenDao.getImagenPorCodigo(
                            rsImagen.getInt("numsecuen")));
                }
            }

        }
        catch(Exception e){
        e.printStackTrace();
        }
        finally {
            Conexion.closeResultSet(rsServicioExamen);
            Conexion.closeResultSet(rsImagen);
            Conexion.closeStatement(st);
            Conexion.closeConnection(connection);
        }



//        DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
//        try{
//            servicioExamen.setFechaToma(df.parse("01/01/2010"));
//        }catch (ParseException e){}
//        servicioExamen.setIdServExamen(codigoServicio);
//        servicioExamen.getObjExamen().setCoExamen(2);
//        servicioExamen.getObjExamen().setCosto(10);
//        servicioExamen.getObjExamen().setNombre("Examen de Sangre ");
//        servicioExamen.getObjExamen().setPrecio(15);
//        servicioExamen.getObjExamen().setTipo("N/A");
//        servicioExamen.setResultado("Todo normal");
//
//        for(int i=0; i<4; i++ ){
//            Imagen imagen = new Imagen();
//            try{
//                imagen.setFechaUpload(df.parse("02/01/2010"));
//            }catch(ParseException e){}
//            imagen.setDirEnDisco("/images/pie.jpg");
//            servicioExamen.getListaImagenes().add(imagen);
//        }
//
        return servicioExamen;
    }

    public boolean setResultadoPorCodigo(int coservicioexamen, String resultado){
        boolean flag = false;

        Connection connection = null;
        Statement st = null;

        try{
            connection= Conexion.obtenerConexion();
            st = connection.createStatement();
            st.executeUpdate("update servicio_examen set resultado ='" + resultado +
                    "' where idservexamen =" + Integer.toString(coservicioexamen) );
            flag = true;
        }
        catch(Exception e){
        e.printStackTrace();
        }
        finally {
//            Conexion.closeResultSet(rsServicioExamen);
//            Conexion.closeResultSet(rsImagen);
            Conexion.closeStatement(st);
            Conexion.closeConnection(connection);
        }


        return flag;
    }
    public void setExamenDao (ExamenDao examendao){
        this.examenDao = examendao;
    }
    public void setImagenDao (ImagenDao imagendao){
        this.imagenDao = imagendao;
    }
}
